package cn.wolfcode.order.service;


import cn.wolfcode.order.domain.OrderInfo;
import cn.wolfcode.order.query.OrderInfoQueryObject;
import cn.wolfcode.order.query.QueryObject;
import com.github.pagehelper.PageInfo;


/**
 * Created by Chris on 2018/1/3.
 */
public interface IOrderInfoService {

    PageInfo query(QueryObject qo);

    /**
     * 生成订单
     */
    OrderInfo createOrder();

    /**
     * 查询未确定的订单
     * @param qo
     * @return
     */
    PageInfo selectOrderNoVerify(QueryObject qo);

    /**
     * 改变订单的确认状态
     * @param orderId
     */
    void changeOrderStatus(Long orderId);

    /**
     * 改变订单的发货状态
     * @param orderId
     */
    void changeShippingStatus(Long orderId);

    /**
     * 查询尚未发货的订单
     * @param qo
     * @return
     */
    PageInfo selectOrderNoDeliver(QueryObject qo);

    /**
     * 单个订单详情
     * @param orderId
     * @return
     */
    OrderInfo getOne(Integer orderId);
}
